Keyword [Mask R-CNN] [RoI Align]
He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.
1. Overview
论文提出一个用于object instance segmentation的通用框架Mask R-CNN. 该框架在Faster R-CNN的基础上
- 并行增加了一个预测对象mask的分支(全卷积网络,对每个RoI进行预测)
- 将RoI Pooling操作改为RoI Align操作(将量化操作改为双线性插值操作)
Mask R-CNN 5fps on GPU,论文进行object detection、instance segmentation和human pose estimation实验。
1.1. 分割任务
- Semantic segmentation(pixel labeling task).对每个像素点进行类间分类,不区分类内实例(例如图像中两只狗的像素点都分类为狗,不区分两只狗的像素点)
- Instance segmentation(object detection task). 检测图像中每个对象,并对每个对象实例进行分割
1.2. RoI Pooling的量化操作
- Faster R-CNN主要用于物体检测任务,其中的RoI Pooling过程存在两次量化
- 浮点数RoI缩小feature_stride后,对应到共享特征图上的边界量化
- RoI对应特征图进行RoI Pooling操作时,划分H*W区域的边界量化
- 量化操作会导致共享特征图上的RoI与输入图像之间存在错位问题,对分类和检测任务的影响并不大,但是对像素级别mask预测的影响较大(输入与输出之间并没有pixel-to-pixel alignment)。
1.3. RoI Align操作
- 将RoI Pooling中的量化操作改为双线性插值操作,RoI Align是提高准确度的关键操作。
- 考虑
- Scale (feature_stride)为16的共享特征图
- 相对于输入图像的预测RoI x
- 量化操作
- 计算RoI相对于共享特征图的点坐标x/16.0
- 量化取整数点坐标round(x/16.0)
- 在共享特征图上采样该整数点的值
- Align操作
- 计算RoI相对于共享特征图的点坐标x/16.0
- 在共享特征图上使用双线性插值采样该小数点的值
2. Mask R-CNN
Mask R-CNN分为两个阶段
- RPN预测RoIs
- 并行预测每个RoI的box (class, box offset)和binary mask. 看做两个分支
2.1. 解耦mask与class
- FCN. class预测包含在mask预测中,存在类间竞争问题(per-pixel softmax, 多类别交叉熵)。即mask中每个像素点是一个k维softmax向量(或理解为对每个RoI预测一张mask,像素点分为k类型)
- Mask R-CNN. class预测从mask预测中分离出来,不存在类间竞争问题(per-pixel sigmoid, binary loss)。即mask中每个像素点是k个sigmoid值(或理解为对每个RoI预测k张mask,每张mask中的像素点分为background与foreground两种类型)
2.2. Multi-task Loss
对于每个RoI,有3个loss
- L_{cls}. log loss
- L_{box}. smooth L1
- L_{mask}. binary cross entropy loss, 只计算对应类别的mask loss.
2.3. 网络结构
- Backbone. ResNet, ResNeXt, FPN
- Head. cls, box, mask
2.4. 细节
训练
- RoI与gt box的IoU大于等于0.5为正例,其余为负例
- 采样RoI正负比例1:3
- Mask target为RoI与gt mask的交集
- shorter side 800
测试 (与训练阶段的区别)
- 对预测的box进行NMS过滤
- 选择top 100个预测box进行mask预测
3. Instance Segmentation
3.1. 实验结果
3.2. Ablations
class-agnostic mask (29.7AP,m*m mask)与class-specific mask(30.3AP,m*m mask per class)效果相似。
3.3. 边界框检测
使用mask分支的Mask R-CNN比没有使用mask分支的Faster R-CNN&RoI Align效果好
4. Human Pose Estimation
考虑身体部位共k个关键点(肩膀、肘等),则对每个RoI预测k张mask,每张mask中只有一个像素点为foreground,因此对m*m mask做softmax操作.